<!DOCTYPE html>
<html lang="en">

  <head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Symbol</title>
  </head>

  <body>

  </body>
  <script>
    /* 
    Symbol:
      1.typeof检测类型数据有六种：String,Number,boolean,undefined,Object,function,Symbol
      2.1.什么是Symbol？
          它是 JavaScript 语言的第七种数据类型，前六种是：undefined、null、布尔值（Boolean）、
          字符串（String）、数值（Number）、对象（Object）。
      2.2 特点：
         1.Symbol 的值是唯一的，用来解决命名冲突的问题
         2.Symbol 值不能与其他数据进行运算
         3.Symbol 定义的对象属性不能使用 for…in 循环遍历，但是可以使用Reflect.ownKeys 来获取对象的所有键名    
      3.除了定义自己使用的 Symbol 值以外，ES6 还提供了 11 个内置的 Symbol 值，指向语言内部使用的方法。
      4.symbol.iterator:对象的Symbol.iterator属性，指向该对象的默认遍历器方法。
    
    */
    //1.Symbol数据类型是唯一的  
    //2.Symbol支持传入参数
    let s1 = Symbol("one");
    let s2 = Symbol("two");
    console.log(s1);
    console.log(s2);
    console.log(s1 === s2); //false

    console.log(typeof (s1)); //Symbol

    let obj = {
      name: 'jason',
      age: 18
    }
    // 3.向对象里传入参数
    obj[Symbol.iterator] = function () {

    }
    console.log(obj);
  </script>

</html>